﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms.VisualStyles;

namespace Common.Entities
{
    public class Achievement
    {
        public int Id;//id ачивмента
        public int ClickPerMinute;//сколько кликов в минуту надо для этого ачивмента
        public Dictionary<int, int> Structures;//сколько зданий каждого типа надо для ачивмента
        public List<int> Upgrades;//сколько апгрейдов надо
        public decimal Money;//сколько пряников надо для апгрейда
        public decimal MoneyIncome;//сколько пряников в секунду надо для ачивки
        public decimal GingerMan;//сколько пряничных человечков надо для ачивки
        public decimal GingerManIncome;//сколько пряничных человечков в секунду надо для ачивки
        public decimal Glasur;//сколько глазури
        public decimal GlasurIncome;//сколько глазури в секунду
        public decimal AdvancedGingerMan;//улучшенных ПЧ
        public decimal AdvancedGingerManIncome;//УПЧ в сек
        //public bool Achieved = false;//получена ли ачивка
        public bool Hidden;//скрытая ачивка (не показывается описание и картинка, пока не добудешь ее)

        public string Name;
        public string Description;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="id">Уникальный номер ачивки</param>
        /// <param name="clickPerMinute">Сколько кликов в минуту надо нащелкать для получения</param>
        /// <param name="structures">Какие здания нужны</param>
        /// <param name="upgrades">Какие апгрейды нужны</param>
        /// <param name="money">Сколько пряников должно быть</param>
        /// <param name="moneyIncome">Сколько должен быть доход</param>
        /// <param name="gingerMan">Сколько пряничных человечков должно быть</param>
        /// <param name="gingerManIncome">Сколько доход в пряничных человечках</param>
        /// <param name="glasur">Сколько глазури должно быть</param>
        /// <param name="glasurIncome">Сколько доход глазури</param>
        /// <param name="advancedGingerMan">Сколько улучшенных пряничных человечков должно быть</param>
        /// <param name="advancedGingerManIncome">Сколько доход улучшенных пряничных человечков</param>
        /// <param name="name">Имя ачивки</param>
        /// <param name="description">Описание</param>
        /// <param name="hidden">Скрытая ачивка?</param>
        public Achievement(int id, int clickPerMinute, Dictionary<int, int> structures, List<int> upgrades, decimal money, decimal moneyIncome, decimal gingerMan, decimal gingerManIncome, decimal glasur, decimal glasurIncome, decimal advancedGingerMan, decimal advancedGingerManIncome, string name, string description, bool hidden)
        {
            Id = id;
            ClickPerMinute = clickPerMinute;
            Structures = structures;
            Upgrades = upgrades;
            Money = money;
            MoneyIncome = moneyIncome;
            GingerMan = gingerMan;
            GingerManIncome = gingerManIncome;
            Glasur = glasur;
            GlasurIncome = glasurIncome;
            AdvancedGingerMan = advancedGingerMan;
            AdvancedGingerManIncome = advancedGingerManIncome;
            Name = name;
            Description = description;
            Hidden = hidden;
        }
    }
}
